# Python StringIO

# StringIO是Python的内置类，它实现了在内存中读写str。
# 常用方法：
# - getvalue()：获取当前的str内容
# - write(str)：写入str内容
# - read()：读取str内容
# - close()：关闭IO
# - flush()：刷新IO缓存

# StringIO的属性：
# - buf：当前的str内容
# - pos：当前位置
# - len：当前str长度
# - closed：判断IO是否关闭


from io import StringIO

# 创建一个字符串IO,并指定初始内容
string_io = StringIO("fuck")
# 写入内容, 注意这里的写入会覆盖初始的内容
string_io.write("王大锤")
# 读取内容
print(string_io.getvalue())
# 关闭IO
string_io.close()
# 查看IO是否关闭
print(string_io.closed)


# 关闭IO
try:
    # 创建一个字符串IO,并指定初始内容
    string_io = StringIO("fuck")
    # 写入内容, 注意这里的写入会覆盖初始的内容
    string_io.write("风清影竹")
    # 读取内容
    print(string_io.getvalue())
finally:
    # 关闭IO
    string_io.close()


# with语句自动关闭IO
with StringIO("fuck") as string_io:
    # 写入内容, 注意这里的写入会覆盖初始的内容
    string_io.write("铁爪鬼王")
    # 读取内容
    print(string_io.getvalue())
    print("with语句(内部)自动关闭IO", string_io.closed)
print("with语句(外部)自动关闭IO", string_io.closed)